<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <title>Spam-Xプラグイン | Geeklogドキュメント</title>
  <link rel="stylesheet" type="text/css" href="../docstyle.css" title="Dev Stylesheet">
  <link rel="stylesheet" type="text/css" href="docstyle.css" title="Dev Stylesheet">
  <meta name="robots" content="noindex">
</head>

<body>
<p><a href="http://www.geeklog.jp" style="background:transparent"><img src="../images/newlogo.gif" alt="Geeklog Documentation" width="243" height="90"></a></p>
<div class="menu"><a href="index.html">Geeklogドキュメント</a> - Geeklog Spam-Xプラグイン</div>

<h1>Geeklog Spam-Xプラグイン</h1>

<p><small>(Hendrickson Software Componentsによる同名のEメールスパムフィルタをお探しでここに来られた方は、<a href="http://www.hendricom.com/spamcontrol.htm" rel="nofollow">ここをクリック</a>。)</small></p>

<h2>概要</h2>

<p>Geeklog Spam-Xプラグインは、Geeklogシステムに対するコメントスパム対策として開発されました。コメントスパムをよく知らない方は<a href="http://kalsey.com/2003/11/comment_spam_manifesto/">コメントスパムマニフェスト</a>をどうぞ。</p>

<p>Geeklogでのスパム対策はもっぱらTom Willetが開発したSpam-Xプラグインに頼っています。このプラグインはモジュール構造を採用しており、スパム送信者の最新の手法に対応する必要が生じた場合は、新しいモジュールで機能を拡張できるようになっています。</p>

<h2><a name="checked">スパム検索の対象となるもの</a></h2>

<p>GeeklogとSpam-Xプラグインは次のものを対象とします。</p>

<ul>
<li>投稿される記事</li>
<li>コメント</li>
<li>トラックバックとピングバック</li>
<li>投稿されるイベント</li>
<li>投稿されるリンク</li>
<li>「友だちに記事をメールする」機能で添えられる文章</li>
<li>ユーザプロフィールのページからメールフォーム経由で送信されるEメール</li>
<li>ユーザのプロフィール</li>
</ul>

<h2><a name="modules">モジュールの種類</a></h2>

<p>Spam-Xプラグインは、コメントスパム送信者の変化に対して容易に対応できるよう、拡張性を重視して開発されました。<a href="#examine">検出(Examine)</a>, <a href="#action">アクション(Action)</a>, <a href="#admin">管理(Admin)</a>モジュールの3種類があります。新規モジュールは1個のファイルに収められているので、該当ディレクトリに追加しさえすれば、プラグインの機能を追加できます。</p>

<h2><a name="examine">検出モジュール</a></h2>

<p>Geeklogには次の検出モジュールが同梱されています。</p>

<ul>
<li><a href="#slv">スパムリンク検証(SLV: Spam Link Verification)</a></li>
<li><a href="#personal">パーソナルブラックリスト(Personal Blacklist)</a></li>
<li><a href="#ip">IPフィルタ(IP Filter)</a></li>
<li><a href="#ipofurl">URLのIPフィルタ(IP of URL Filter)</a></li>
<li><a href="#header">HTTPヘッダフィルタ(HTTP Header Filter)</a></li>
<!-- <li><a href="#honeypot">ハニーポットプロジェクトフィルタ(Project Honeypot Filter)</a></li> -->
</ul>

<h3><a name="slv">スパムリンク検証(SLV: Spam Link Verification)</a></h3>

<p>SLVは集約されたサーバを拠点としたサービスで、Webサイトに投稿されたものを検証し、特定のリンクが異常なほど多く見られる場合にそれを検出します。言い換えれば、スパム送信者が多くのサイトに同一URLを含むスパムを送信し始め、これらのサイトすべてがSLVに報告した場合、SLVシステムはこの傾向をスパムと認識し、該当URLを含む投稿をスパムと判定します。</p>

<p>さらに言い換えると、SLVは、スパム送信者がサイトにスパムを送信し始めたときに、自動的に更新されるブラックリストであると言えます。SLVを使用するサイトが増えれば増えるほど、（正確さと反応速度という点では）ますますその質が高まります。</p>

<p>SLVはRuss Jonesが<a href="http://www.linksleeve.org/">www.linksleeve.org</a>で運営している無料のサービスです。

<p><strong><a name="slvprivacy">プライバシーポリシーの表示</a></strong><br>
SLVを使用しているということは、自分のサイトから第三者のサイトに情報を送信していることになるということを強調しておいた方がよいでしょう。法体系によっては、ユーザにこの事実を告知する必要があるかもしれません。自分の地域のプライバシーに関する法律を確認してください。</p>

<p>運用している状況によっては（たとえば、企業のイントラネットなど）、情報を外部のサイトに送信することが望ましくない場合もあるでしょう。その場合は、 <tt>SLV.Examine.class.php</tt>, <tt>SLVbase.class.php</tt>, <tt>SLVreport.Action.class.php</tt>, <tt>SLVwhitelist.Admin.class.php</tt> の4つのファイルをSpam-Xのディレクトリ(<tt>/path/to/geeklog/plugins/spamx</tt>)から削除すれば、SLVを無効にできます。単にSpam-Xプラグインを無効にする（または、アンインストールする）だけでもよいです。</p>

<p>SLV検証モジュールとアクションモジュールは、投稿されたデータからすべてのURLを抽出し、SLVへ送信するだけです(つまり、投稿されたデータのURL以外の部分は送信されません)。また、自分のGeeklogサイトのURLを含むリンクはすべて除外します。投稿されたデータに外部リンクが含まれていない場合、これらのモジュールはSLVと通信を行いません。</p>


<h3><a name="personal">パーソナルブラックリスト(Personal Blacklist)</a></h3>

<p>パーソナルブラックリストモジュールを使用すると、スパム投稿によく見られるキーワードとURLをブラックリストに追加できます。スパムが投稿されている場合、そのURLをパーソナルブラックリストに追加すれば、送信者が再びスパムを投稿しても締め出すことができます。</p>

<p>上記を行うことにより、既に受信したスパムを削除しやすくなります。データベースから多数のスパム投稿を削除するのに、一括コメント削除と一括トラックバック削除を使用できるようになるからです。</p>

<p>パーソナルブラックリストには、Geeklogの<a href="config.html#desc_censorlist">バッドワードリスト(censor list)</a>を読み込み、バッドワードを含むコメントをすべて禁止する機能があります。このようなリストは子ども向けのサイトには有用でしょう。ふさわしくない言葉を含むコメントは投稿できなくなるからです。</p>

<h3><a name="ip">IPフィルタ(IP Filter)</a></h3>

<p>1つないし少数のIPアドレスから送信されるスパムに出くわすこともあります。IPフィルタモジュールに追加することで、これらのIPアドレスから送信されるスパムを自動的にブロックできます。</p>

<p>IPアドレスを1つずつだけでなく、<a href="http://en.wikipedia.org/wiki/CIDR" title="Classless Inter-Domain Routing">CIDR</a>表記や<i>開始アドレス</i>-<i>終了アドレス</i> という形式で、IPアドレスの範囲を指定することもできます。</p>

<p>IPアドレスが実際にはあまりよい判断基準にはならないということに注意してください。インターネットサービスプロバイダやホスティングサービスの中にはスパムの温床として知られているものもありますが、それらのIPアドレスをブロックしてもあまり役には立たないでしょう。スパム送信者はインターネットへ接続し直すときに新しいIPアドレスを取得するのに対し、ブロックされたIPアドレスは他の罪もないユーザが使用することがよくあるからです。</p>

<h3><a name="ipofurl">URLのIPフィルタ(IP of URL Filter)</a></h3>

<p>このモジュールが役に立つのは少数の特別な場合だけです。ここでは、スパム送信元のドメインを収容しているWebサーバのIPアドレスを入力します。スパム送信者の中には多数のサイトを少数のWebサーバ上で運営しているものがいます。このような場合は、多数のドメイン名ではなくWebサーバのIPアドレスをブラックリストに追加すればよいでしょう。Spam-Xプラグインは、投稿されたデータ中のすべてのURLをチェックし、該当するIPアドレスがないかチェックします。</p>

<h3><a name="header">HTTPヘッダフィルタ(HTTP Header Filter)</a></h3>

<p>このモジュールを使用すると、ある種のHTTPヘッダを検出することができます。サイトへ送信されるすべてのHTTPリクエストには、訪問者が使用しているWebブラウザや使用言語などの情報を識別するヘッダが付随しています。</p>

<p>HTTPヘッダフィルタモジュールを使用すると、ある種のHTTPリクエストをブロックすることができます。たとえば、スパム送信者の中には、スパムを送信するのにPerlスクリプトを使用しているものがいます。Perlスクリプトが送信するユーザエージェント(ブラウザ識別情報)は "libwww-perl/5.805" (バージョン番号はこれとは違う場合もある)のようなものが多いです。したがって、このユーザエージェントが送信するスパムをブロックするには、次のように入力します。</p>

<table border="0" style="width:15em">
<tr><td><b>Header:</b></td><td align="left"><kbd>User-Agent</kbd></td></tr>
<tr><td><b>Content:</b></td><td align="left"><kbd>^libwww-perl</kbd></td></tr>
</table>
<p>これで "libwww-perl" で始まるユーザエージェントからのスパム投稿はすべてブロックされます。</p>

<!-- Currently not shipped with Geeklog

<h3><a name="honeypot">Project Honeypot http:BL Filter</a></h3>

<p><a href="http://www.projecthoneypot.org" title="visit the project honey pot site">ProjectHoneypot.org</a>
    is a new service providing a way of trapping malicious web users with
    <a href="http://en.wikipedia.org/wiki/Honeypot_%28computing%29" title="view the wikipedia definition of a Honeypot">honeypots</a>.
    Essentially this provides traps for email address harvesting bots, spammers,
    and people trying to exploit web sites. Using the honeypots, the project
    gathers and maintains an active blacklist of IP addresses categorised by
    threat type, level and activity.</p>

<p>With the ProjectHoneyPot filter module, you can block posts from known bad
    ip addresses as identified by the <a href="http://www.projecthoneypot.org/httpbl_configure.php">http:BL</a>
    blacklist.
    </p>
    <p>In order to do so, you must first <a href="http://www.projecthoneypot.org/create_account.php">Register with projectHoneyPot</a>,
        <a href="http://www.projecthoneypot.org/manage_honey_pots.php">install a honeypot</a> or
        <a href="http://www.projecthoneypot.org/manage_quicklink.php">quick link</a> and
        <a href="http://www.projecthoneypot.org/httpbl_configure.php">get an access key</a>
        for the http:BL.</p>
    <p>Once you have done this, and inserted appropriate details into the Spam-X
        config.php file, http:BL blocking will be used for all filtered content
    automatically.</p>

-->


<h2><a name="action">アクションモジュール</a></h2>

<p>いったん<a href="#examine">検出モジュール</a>がスパム投稿を検出すると、アクションモジュールがスパムをどう処理するかを判断します。たいていの場合、スパムを削除するだけでよいですが、これを行うのが<b>削除アクション(Delete Action)</b> モジュールです。</p>

<p>その名前が示すとおり、<b>管理者メールアクション(Mail Admin Action)</b> モジュールはスパムを検出したときに、サイト管理者にメールで通知します。多数の通知メールが送られる可能性があるため、デフォルトでは無効になっています。</p>

<p>アクションモジュールは使用する前に個別に有効にする必要があります(一方、検出モジュールはSpam-Xのディレクトリに放り込むだけで有効になります)。このため、すべてのアクションモジュールは独自の番号を持っています。有効にしたいすべてのモジュールの番号を足し合わせた数値を、「管理者用メニュー - コンフィギュレーション - Geeklog - ユーザと投稿」の「<a href="config.html#desc_spamx">Spam-X</a>」に入力します。</p>

<h3>例</h3>

<p>削除アクションモジュールの数字は 128、管理者メールアクションモジュールは 8 です。両方のモジュールを有効にするには、 128 + 8 = 136 を入力します。</p>

<p>SLV検出モジュールは、他の検出モジュールが捕捉したスパム投稿を確実にSLVに通知します<strong>SLVアクション(SLV Action)</strong> モジュールによって補完されています。このモジュールは削除アクションモジュールと連動しているので、削除アクションモジュールを有効にすると、SLVアクションモジュールも有効になります。</p>


<h2><a name="admin">管理モジュール</a></h2>

<p><a href="#personal">パーソナルブラックリスト</a>, <a href="#ip">IPフィルタ</a>, <a href="#ipofurl">URLのIPフィルタ</a>, <a href="#header">HTTPヘッダフィルタ</a>モジュール用の管理モジュールは新しい項目を追加するためのフォームを提供します。既存の項目を削除するには、単にその項目をクリックするだけです。</p>

<p><strong>SLVホワイトリスト</strong>管理モジュールを使えば、SLVに通報したくないURLを追加できます。サイトに投稿されるデータにたまたまある特定のURLが頻繁に含まれていますが、SLVによってスパムと判定されてほしくないときに役に立ちます。<br>自分のサイトのURL(つまり、「管理者用メニュー - コンフィギュレーション - Geeklog - サイト」の「<a href="config.html#desc_site_url">サイトURL</a>」)は自動的にホワイトリストに登録されるので、このモジュールで新たに登録する必要はありません。</p>

<p><strong>ログ閲覧</strong>モジュールを使用すれば、Spam-Xログファイルの閲覧・クリアができます。ログファイルには、スパム送信元のIPアドレスやユーザID（登録ユーザがスパムを投稿した場合）、検出モジュール名などの追加情報が含まれています。</p>

<p>多数のスパムが投稿されても検出されなかった場合は、<strong>一括コメント削除</strong>モジュールと<strong>一括トラックバック削除</strong>モジュールがスパムの削除に役立つでしょう。これらのモジュールを使用する前に、スパムに含まれるURLやキーワードをパーソナルブラックリストに忘れずに追加してください。</p>

<h2><a name="mt-blacklist">MTブラックリスト(MT-Blacklist)に関する注意</a></h2>

<p>MTブラックリストは、スパム送信に利用されたURLのブラックリストで、Movable Type用にJay Allenによって開発・維持されていました。そのため、MT-Blacklistという名前がついています。</p>

<p>ブラックリストの維持を行うのは大変手間のかかることであり、スパム送信者を絶えず把握しておかなければなりません。そのため、Jay Allenは現在ではスパムを検出するより優れた方法があると想定して、最終的に<a href="http://www.geeklog.net/article.php/mt-blacklist-discontinued">MTブラックリストの更新をやめてしまいました</a>。</p>

<p>Geeklog 1.4.1以降、GeeklogではもはやMTブラックリストを使用していません。1.4.1にアップグレードするときに、データベースからMTブラックリストのデータは削除され、MTブラックリスト用の検出・アクションモジュールはもはや同梱されていません。</p>

<h2><a name="trackback">トラックバックスパム</a></h2>

<p><a href="trackback.html">トラックバック</a>もまた、Geeklogに受け入れられる前にSpam-Xプラグインで検査されます。トラックバックの場合、追加できるチェックがあります。トラックバックを送信してきたサイトが自分のサイトへのバックリンクを含んでいるかどうかをチェックするよう、設定できます。その上、トラックバックURLに含まれるサイトのIPアドレスがトラックバック送信元のIPアドレスと一致するかをチェックすることもできます。これらの検査に合格しないトラックバックはふつう、スパムです。詳細は、<a href="config.html#desc_check_trackback_link">設定用のドキュメント</a>を参照してください。</p>

<h2><a name="config.php">コンフィギュレーション</a></h2>

<p>Spam-Xプラグインの設定は、「管理者用メニュー - コンフィギュレーション -  Spam-X」から行えます。</p>

<h3><a name="main">Spam-Xの設定</a></h3>

<table>
<tr><th style="width:25%">項目</th>
    <th style="width:25%">初期値</th>
    <th style="width:50%">説明</th>
</tr>
<tr>
  <td><a name="desc_logging">ログを有効にする(logging)</a></td>
  <td><code>はい(true)</code></td>
  <td>はい(true)にすると、スパムと認識された投稿がログファイル(<tt>spamx.log</tt>)に記録される。</td>
</tr>
<tr class="r2">
  <td><a name="desc_admin_override">管理者の投稿はフィルタしない(admin_override)</a></td>
  <td>いいえ(false)</td>
  <td>Spam-Xプラググインは、サイト管理者を含めてどのユーザによる投稿でもチェックする。場合によっては、これは問題になる。たとえば、スパム送信者のURLやキーワードを含む記事を投稿したい場合などである。この設定をはい(<code>true</code>)にすると、spamx Adminグループに属するユーザの投稿はスパムのチェックがなされなくなる。</td>
</tr>
<tr>
  <td><a name="desc_timeout">タイムアウト(timeout)</a></td>
  <td>5（秒）</td>
  <td>SLVなどの外部サービスと通信する際のタイムアウトとなる秒数。</td>
</tr>
<tr class="r2">
  <td><a name="desc_notification_email">メールで通知する(notification_email)</a></td>
  <td><code>「管理者用メニュー - コンフィギュレーション - Geeklog - サイト」の「サイトのメールアドレス」の設定値</code></td>
  <td>管理者メール<a href="#action">アクションモジュール</a>が有効になっている場合、スパム通知の送信先Eメールアドレス。</td>
</tr>
<tr>
  <td><a name="desc_action">Spam-Xの動作(action)</a></td>
  <td>128</td>
  <td>「管理者用メニュー - コンフィギュレーション - Geeklog - ユーザと投稿」の「<a href="config.html#desc_spamx">Spam-X</a>」が設定されていない場合に備えるための設定。言い換えれば、「管理者用メニュー - コンフィギュレーション - Geeklog - ユーザと投稿」の「Spam-X」の設定の方が優先する。</td>
</tr>
</table>

<h2><a name="more">詳細情報</a></h2>

<p>Spam-Xプラグインの詳細情報とサポート掲示板は、<a href="http://www.pigstye.net/gplugs/staticpages/index.php/spamx" rel="nofollow">Spam-Xプラグインのホームページ</a>と<a href="http://wiki.geeklog.net/wiki/index.php/Dealing_with_Spam">Geeklog Wiki</a>にあります。</p>

<div class="footer">
    <a href="http://wiki.geeklog.net/">Geeklogドキュメント作成プロジェクト(The Geeklog Documentation Project)</a><br>
    本ページのすべての商標と著作権はそれぞれの所有者に帰属します。Geeklogはコピーレフトです。
</div>
</body>
</html>
